1. 숫자 연산
| sqrt() |
주어진 값의 제곱근 |
| abs() |
주어진 값의 절댓값 |
| exp() |
자연상수 e의 제곱수 |
| log() |
밑이 자연상수인 로그 값 |
| log10() |
밑이 10인 로그 값 |
| pi() |
원주율 pi=3.141592 |
| round() |
주어진 수의 반올림 값 |
| ceiling() |
주어진 수를 올림 |
| floor() |
주어진 수를 내림 |
2. 문자 연산
| tolower() |
주어진 문자열을 소문자로 변경 |
| toupper() |
주어진 문자열을 대문자로 변경 |
| nchar() |
주어진 문자열의 길이 |
| substr() |
문자열의 일부분을 추출 |
| strsplit() |
문자열을 구분자로 나누어 쪼갬 |
| grepl() |
문자열에 주어진 문자가 있는지 확인 |
| gsub() |
문자열의 일부분을 다른 문자로 대체 |
> data<-'This is a pen'
> tolower(data)
[1] "this is a pen"
> toupper(data)
[1] "THIS IS A PEN"
> nchar(data)
[1] 13
> substr(data, 9, 13)
[1] "a pen"
> strsplit(data, 'is')
[[1]]
[1] "Th" " " " a pen"
> grepl('pen', data)
[1] TRUE
> gsub('pen', 'bananan', data)
[1] "This is a bananan"
3. 벡터 연산
| length() |
주어진 벡터의 길이 |
| paste() |
주어진 벡터를 구분자를 기준으로 결합 |
| cov() |
두 수치 벡터의 공분산 |
| cor() |
두 수치 벡터의 상관관계 |
| table() |
데이터의 개수 |
| order() |
벡터의 순서 |
4. 행렬 연산
| t() |
전치행렬 |
| diag() |
대각행렬 |
| %*% |
두 행렬을 곱함 |
> m1<-matrix(c(1,2,3,4,5,6), nrow=2)
> m2<-matrix(c(1,2,3,4,5,6), ncol=2)
> m1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> m2
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> m1%*%m2
[,1] [,2]
[1,] 22 49
[2,] 28 64
5. 데이터 탐색
| head() |
데이터의 앞 일부분 출력 |
| tail() |
데이터의 뒤 일부분 출력 |
| quantile() |
수치 벡터의 4분위수를 출력 |
> x<-c(1 : 12)
> head(x, 5)
[1] 1 2 3 4 5
> tail(x, 5)
[1] 8 9 10 11 12
> quantile(x)
0% 25% 50% 75% 100%
1.00 3.75 6.50 9.25 12.00
6. 데이터 전처리
| subset() |
데이터에서 조건식에 맞는 데이터를 추출 |
| merge() |
두 데이터를 특정 공통된 열을 기준으로 병합 |
| apply() |
데이터에 열(또는 행)별로 주어진 함수를 적용 |
> df1<-data.frame(x=c(1, 1, 1, 2, 2), y=c(2, 3, 4, 3, 3))
> df2<-data.frame(x=c(1, 2, 3, 4), z=c(5, 6, 7, 8))
> subset(df1, x==1)
x y
1 1 2
2 1 3
3 1 4
> merge(df1, df2, by=c('x'))
x y z
1 1 2 5
2 1 3 5
3 1 4 5
4 2 3 6
5 2 3 6
# 1은 행에 함수를 적용, 2는 각 열에 함수를 적용
> apply(df1, 1, sum)
[1] 3 4 5 5 5
> apply(df1, 2, sum)
x y
7 15
7. 정규분포(기본값은 표준 정규 분포 mean=0, sd=1)
| dnorm() |
정규 분포의 주어진 값에서 함수 값 구함 |
| rnorm() |
정규 분포에서 주어진 개수만큼 표본을 추출 |
| pnorm() |
정규 분포에서 주어진 값보다 작을 확률을 구함 |
| qnorm() |
정규 분포에서 주어진 넓이 값을 갖는 x 값을 구함 |
8. 표본추출
| runif() |
균일 분포에서 주어진 개수만큼 표본을 추출 |
| sample() |
주어진 데이터에서 주어진 개수만큼 표본을 추출 |
9. 날짜
| Sys.Data() |
연, 월, 일을 출력 |
| Sys.time() |
연, 월, 일, 시간을 출력 |
| as.Date() |
주어진 데이터를 날짜 형식으로 변환 |
| format() |
원하는 날짜 형식으로 변경 |
| as.POSIXct() |
타임스탬프를 날짜 및 시간으로 변환 |
> Sys.Date()
[1] "2021-09-02"
> Sys.time()
[1] "2021-09-02 17:18:43 KST"
> as.Date('2020-01-01')
[1] "2020-01-01"
> format(Sys.Date(), '%Y/%m/%d')
[1] "2021/09/02"
> format(Sys.Date(), '%A')
[1] "Thursday"
> unclass(Sys.time())
[1] 1630570790
> as.POSIXct(unclass(Sys.time()), origin='1970-01-01')
[1] "2021-09-02 17:20:21 KST"
10. 산점도
| plot() |
주어진 데이터의 산점도를 그린다. |
| abline() |
산점도에 추가 직선을 그린다. |
plot()
type에서 p는 점, l은 직선, b는 점과 직선, n은 아무것도 표시하지 않음을 의미
xlim로 x축의 범위, ylim으로 y축의 범위를 설정
xlab, ylab은 각 축의 이름을 지정한다.
main으로 산점도의 이름을 지정
abline()
abline()의 v는 수직선, h는 수평선을 그리는 매개변수이다.
col 매개변수로 색상을 지정할 수 있다.
> x<-c(1:10)
> y<-rnorm(10)
> plot(x, y, type='l', xlim=c(-2, 12), ylim=c(-3, 3), xlab="X axis", ylab='Y axis', main='Test plot')
> abline(v=c(1, 10), col='blue')
11. 파일 읽기
| read.csv() |
CSV 파일 불러옴 |
| write.csv() |
주어진 데이터를 CSV 파일로 저장 |
| saveRDS() |
분석 모델 및 R 파일을 저장 |
| readRDS() |
분석 모델 및 R 파일을 불러옴 |
12. 기타
| install.packages() |
패키지를 설치 |
| library() |
설치된 패키지를 호출 |
| getwd() |
작업 디렉터리를 확인 |
| setwd() |
작업 디렉터리를 설정 |